package com.deductive.domain.special;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;

import com.deductive.common.config.mybatis.GeoJsonToGeometryDeserializer;
import com.deductive.common.config.mybatis.GeometryToGeoJsonSerializer;
import com.deductive.common.config.mybatis.GeometryTypeHandler;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.locationtech.jts.geom.Geometry;

/**
 * 医院
 * @TableName special_hospital
 */
@ApiModel(value = "SpecialHospital", description = "医院信息")
@TableName(value ="special_hospital")
@Data
public class SpecialHospital implements Serializable {
    /**
     * 
     */
    @TableField(value = "id")
    private Integer id;

    /**
     * 空间几何数据
     */
    @ApiModelProperty(value = "空间几何数据")
    @TableField(value = "geom", typeHandler = GeometryTypeHandler.class)
    @JsonSerialize(using = GeometryToGeoJsonSerializer.class)
    @JsonDeserialize(using = GeoJsonToGeometryDeserializer.class)
    private Geometry geom;

    /**
     * 唯一标识码
     */
    @ApiModelProperty(value = "唯一标识码")
    @TableField(value = "guid")
    private String guid;

    /**
     * 医院名称
     */
    @ApiModelProperty(value = "医院名称")
    @TableField(value = "name")
    private String name;

    /**
     * 所属国家
     */
    @ApiModelProperty(value = "所属国家")
    @TableField(value = "ownercountry")
    private String ownerCountry;

    /**
     * 所属省份
     */
    @ApiModelProperty(value = "所属省份")
    @TableField(value = "ownerProvince")
    private String ownerProvince;

    /**
     * 城市
     */
    @ApiModelProperty(value = "城市")
    @TableField(value = "city")
    private String city;

    /**
     * 经度
     */
    @ApiModelProperty(value = "经度")
    @TableField(value = "lon")
    private String lon;

    /**
     * 纬度
     */
    @ApiModelProperty(value = "纬度")
    @TableField(value = "lat")
    private String lat;

    /**
     * 地址
     */
    @ApiModelProperty(value = "地址")
    @TableField(value = "address")
    private String address;

    /**
     * 类别
     */
    @ApiModelProperty(value = "类别")
    @TableField(value = "hospital_type")
    private String hoslitalType;

    /**
     * 等级
     */
    @ApiModelProperty(value = "等级")
    @TableField(value = "hospital_grade")
    private String hoslitalGrade;

    /**
     * 床位数
     */
    @ApiModelProperty(value = "床位数")
    @TableField(value = "beds_number")
    private String bedsNumber;

    /**
     * 隶属关系
     */
    @ApiModelProperty(value = "隶属关系")
    @TableField(value = "subordination")
    private String subordination;

    /**
     * 医师人数
     */
    @ApiModelProperty(value = "医师人数")
    @TableField(value = "number_of_doctors")
    private String noOfPhysicians;

    /**
     * 护理人数
     */
    @ApiModelProperty(value = "护理人数")
    @TableField(value = "number_of_nurses")
    private String noOfNurses;

    /**
     * 医技人数
     */
    @ApiModelProperty(value = "医技人数")
    @TableField(value = "number_of_medical_technicians")
    private String noOfMedMechPersonnel;

    /**
     * 科室数
     */
    @ApiModelProperty(value = "科室数")
    @TableField(value = "number_of_departments")
    private String noOfDepts;

    /**
     * 药剂数
     */
    @ApiModelProperty(value = "药剂数")
    @TableField(value = "number_of_agentia")
    private String noOfDrugs;

    /**
     * 年接纳人数
     */
    @ApiModelProperty(value = "年接纳人数")
    @TableField(value = "annual_outpatient")
    private String annNoOfAdmissions;

    /**
     * 医院员工
     */
    @ApiModelProperty(value = "医院员工")
    @TableField(value = "hospital_staff")
    private String hospitalStaff;

    /**
     * 评分
     */
    @ApiModelProperty(value = "评分")
    @TableField(value = "score")
    private String score;

    /**
     * 描述
     */
    @ApiModelProperty(value = "描述")
    @TableField(value = "description")
    private String description;

    /**
     * 联系方式
     */
    @ApiModelProperty(value = "联系方式")
    @TableField(value = "phone_number")
    private String phoneNumber;

    /**
     * 设备
     */
    @ApiModelProperty(value = "设备")
    @TableField(value = "equipment")
    private String equipment;

    /**
     * 英文名称
     */
    @ApiModelProperty(value = "英文名称")
    @TableField(value = "english_name")
    private String englishname;

    /**
     * 科室
     */
    @ApiModelProperty(value = "科室")
    @TableField(value = "department")
    private String department;

    /**
     * 评价数
     */
    @ApiModelProperty(value = "评价数")
    @TableField(value = "evaluation_of_several")
    private String evaluationOfEvaluations;


    /**
     * 网址
     */
    @ApiModelProperty(value = "网址")
    @TableField(value = "website")
    private String website;

    /**
     * 数据来源
     */
    @ApiModelProperty(value = "数据来源")
    @TableField(value = "data_source")
    private String dataSource;

    /**
     * 三字编码
     */
    @ApiModelProperty(value = "三字编码")
    @TableField(value = "three_code")
    private String threeCode;

    /**
     * 国家编码
     */
    @ApiModelProperty(value = "国家编码")
    @TableField(value = "country_code")
    private String countryCode;

    /**
     * 省编码
     */
    @ApiModelProperty(value = "省编码")
    @TableField(value = "province_code")
    private String provinceCode;

    /**
     * 市编码
     */
    @ApiModelProperty(value = "市编码")
    @TableField(value = "city_code")
    private String cityCode;

    /**
     * 下载链接
     */
    @ApiModelProperty(value = "下载链接")
    @TableField(value = "download_folder_url")
    private String downloadFolderurl;

    /**
     * 是否港口
     */
    @ApiModelProperty(value = "是否港口")
    @TableField(value = "is_port")
    private String isPort;

    /**
     * 是否军事港口
     */
    @ApiModelProperty(value = "是否军事港口")
    @TableField(value = "is_military_port")
    private String isMilitaryPort;

    /**
     * 医院实力
     */
    @ApiModelProperty(value = "医院实力")
    @TableField(value = "hospital_power")
    private String hostipalPower;

    /**
     * imei
     */
    @ApiModelProperty(value = "imei")
    @TableField(value = "imei")
    private String imei;

    /**
     * 其他名称
     */
    @ApiModelProperty(value = "其他名称")
    @TableField(value = "other_name")
    private String otherName;

    /**
     * 大单位
     */
    @ApiModelProperty(value = "大单位")
    @TableField(value = "major_unit")
    private String majorUnit;

    /**
     * 下属单位或院区
     */
    @ApiModelProperty(value = "下属单位或院区")
    @TableField(value = "subordinate_unit")
    private String subordinateUnit;

    /**
     * 改革前名称
     */
    @ApiModelProperty(value = "改革前名称")
    @TableField(value = "name_before_the_reform")
    private String nameBeforeTheReform;

    /**
     * 驻地
     */
    @ApiModelProperty(value = "驻地")
    @TableField(value = "headquarters")
    private String headquarters;

    /**
     * 所属片区
     */
    @ApiModelProperty(value = "所属片区")
    @TableField(value = "affiliated_area")
    private String affiliatedArea;

    /**
     * 类别
     */
    @ApiModelProperty(value = "类别")
    @TableField(value = "category")
    private String category;

    /**
     * 特色科室
     */
    @ApiModelProperty(value = "特色科室")
    @TableField(value = "special_equipment")
    private String specialEquipment;

    /**
     * 手术能力
     */
    @ApiModelProperty(value = "手术能力")
    @TableField(value = "surgical_capability")
    private String surgicalCapability;

    /**
     * 海勤科
     */
    @ApiModelProperty(value = "海勤科")
    @TableField(value = "maritime_services_section")
    private String maritimeServicesSection;

    /**
     * 特勤科
     */
    @ApiModelProperty(value = "特勤科")
    @TableField(value = "military_special_services_division")
    private String militarySpecialServicesDivision;

    /**
     * 空勤科
     */
    @ApiModelProperty(value = "空勤科")
    @TableField(value = "military_air_operations_section")
    private String militaryAirOperationsSection;

    /**
     * 所属表名称
     */
    @ApiModelProperty(value = "所属表名称")
    @TableField(value = "bt_name")
    private String btName;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField(value = "remark")
    private String remark;

    /**
     * 父Id
     */
    @ApiModelProperty(value = "父Id")
    @TableField(value = "parent_id")
    private Integer parentId;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}